<?php

require_once "Servicios.php";

/**
 * Description of DescuentoServicios
 *
 * @author  Mariano Renkine
 * @author  Fernando Arau
 */
class DescuentoServicios extends Servicios
{

  function agregar(DescuentoDTO $descuentoDTO)
  {
    $repoDescuento = new RepoDescuento();
    $descuento = $this->deDTO($descuentoDTO);
    $descuento->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoDescuento->agregar($descuento);
  }

  function modificar(DescuentoDTO $descuentoDTO)
  {
    $repoDescuento = new RepoDescuento();
    $descuento = $this->deDTO($descuentoDTO);
    $descuento->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoDescuento->modificar($descuento);
  }

  function eliminar($id)
  {
    $repoDescuento = new RepoDescuento();
    return $repoDescuento->eliminar($id);
  }

  function listar()
  {
    $repoDescuento = new RepoDescuento();
    $descuentos = $repoDescuento->listar();
    $descuentosDTO = null;
    if (is_array($descuentos) > 0)
    {
      foreach ($descuentos as $descuento)
      {
        $descuentoDTO = new DescuentoDTO();
        $descuentoDTO->setNombre($descuento->nombre);
        $descuentoDTO->setValor($descuento->valor);
        $descuentoDTO->setEsPorcentaje($descuento->es_porcentaje);
        $descuentoDTO->setDeshabilitado($descuento->deshabilitado);
        $descuentoDTO->setUsuario($descuento->usuario);
        $descuentoDTO->setId($descuento->idDescuento);
        $descuentosDTO[] = $descuentoDTO;
      }
    }
    return $descuentosDTO;
  }

  function listarHabilitados()
  {
    $repoDescuento = new RepoDescuento();
    $descuentos = $repoDescuento->listarHabilitados();
    $descuentosDTO = "";
    if ($descuentos != null)
    {
      foreach ($descuentos as $descuento)
      {
        $descuentosDTO[] = $this->aDTO($descuento);
      }
    }
    return $descuentosDTO;
  }

  function listarIdName()
  {
    $resultado = "";
    $descuentos = $this->listarHabilitados();
    if ($descuentos != null)
    {
      for ($i = 0; $i < count($descuentos); $i++)
      {
        $resultado[$i]["id"] = $descuentos[$i]->getId();
        $resultado[$i]["name"] = $descuentos[$i]->getNombre();
      }
    } else
    {
      $resultado[0]["id"] = "";
      $resultado[0]["name"] = "";
    }
    return $resultado;
  }
  function listarKeyValue()
  {
    $resultado = "";
    $descuentos = $this->listarHabilitados();
    if ($descuentos != null)
    {
      for ($i = 0; $i < count($descuentos); $i++)
      {
        $resultado[$i]["key"] = $descuentos[$i]->getId();
        $resultado[$i]["value"] = $descuentos[$i]->getNombre();
      }
    } 
    return $resultado;
  }

  function buscar($id)
  {
    $repoDescuento = new RepoDescuento();
    return $this->aDTO($repoDescuento->buscar($id));
  }

  function aDTO(Descuento $descuento)
  {
    $descuentoDTO = new DescuentoDTO();
    $descuentoDTO->setNombre($descuento->getNombre());
    $descuentoDTO->setValor($descuento->getValor());
    $descuentoDTO->setEsPorcentaje($descuento->getEsPorcentaje());
    $descuentoDTO->setVersion($descuento->getVersion());
    $descuentoDTO->setDeshabilitado($descuento->getDeshabilitado());
    $descuentoDTO->setUsuario($descuento->getUsuario());
    $descuentoDTO->setId($descuento->getId());
    return $descuentoDTO;
  }

  function deDTO(DescuentoDTO $descuentoDTO)
  {
    $descuento = new Descuento();
    $descuento->setNombre($descuentoDTO->getNombre());
    $descuento->setValor($descuentoDTO->getValor());
    $descuento->setEsPorcentaje($descuentoDTO->getEsPorcentaje());
    $descuento->setVersion($descuentoDTO->getVersion());
    $descuento->setDeshabilitado($descuentoDTO->getDeshabilitado());
    $descuento->setUsuario($descuentoDTO->getUsuario());
    $descuento->setId($descuentoDTO->getId());
    return $descuento;
  }

}

?>
